package com.fa4j.system.app.model;


import com.fa4j.common.base.model.AbstractCmd;
import com.fa4j.common.base.model.CommonState;
import com.fa4j.common.web.model.AppType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.util.List;

@Data
@Schema(description = "系统应用菜单创建参数")
public class AppMenuCreateCmd extends AbstractCmd {

    @NotNull
    @Schema(description = "应用类型")
    private AppType appType;

    @NotNull
    @Schema(description = "上级ID")
    private Integer parentId;

    @NotBlank
    @Size(max = 16)
    @Schema(description = "资源名称")
    private String name;

    @NotBlank
    @Size(max = 32)
    @Schema(description = "模块名称")
    private String moduleName;


    @Size(max = 64)
    @Schema(description = "资源编码")
    private String code;

    @NotNull
    @Schema(description = "状态")
    private CommonState state;

    @NotNull
    @Schema(description = "资源类型")
    private AppMenuType type;

    @NotNull
    @Schema(description = "优先级")
    private Integer priority;

    @Size(max = 256)
    @Schema(description = "地址路径")
    private String path;

    @Size(max = 64)
    @Schema(description = "图标")
    private String icon;

    @NotNull
    @Schema(description = "是否显示")
    private Boolean visible;

    @Schema(description = "api集合")
    private List<String> apis;


}
